"""工具函数模块 - 演示各种代码问题"""

import json
import os
from typing import Any, List


def load_config(file_path: str):
    """加载配置文件 - 缺少返回类型注解"""
    if not os.path.exists(file_path):
        print(f"配置文件不存在: {file_path}")
        return None

    with open(file_path, "r", encoding="utf-8") as f:
        return json.load(f)


def process_data(data):  # 缺少类型注解
    """处理数据 - 多种代码风格问题"""
    if data is None:
        return None

    if isinstance(data, list):
        return [item * 2 for item in data if item > 0]
    elif isinstance(data, dict):
        result = {}
        for key, value in data.items():
            if isinstance(value, str):
                result[key] = value.upper()
            else:
                result[key] = value
        return result
    else:
        return str(data).upper()


def validate_email(email):  # 缺少类型注解和返回类型
    """验证邮箱格式"""
    import re

    pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
    return re.match(pattern, email) is not None


class DataProcessor:
    """数据处理器类"""

    def __init__(self, config=None):  # 类型注解不够精确
        self.config = config or {}
        self.processed_count = 0

    def process_batch(self, items: List[Any]) -> List[Any]:
        """批处理数据"""
        results = []
        for item in items:
            try:
                processed = self._process_single(item)
                results.append(processed)
                self.processed_count += 1
            except Exception as e:
                print(f"处理项目时出错: {e}")  # 应该使用 logging
                continue

        return results

    def _process_single(self, item: Any) -> Any:
        """处理单个项目"""
        if isinstance(item, str):
            return item.strip().lower()
        elif isinstance(item, (int, float)):
            return item * 2
        elif isinstance(item, dict):
            return {k: str(v).upper() for k, v in item.items()}
        else:
            return str(item)

    def get_stats(self):  # 缺少返回类型注解
        """获取处理统计信息"""
        return {"processed_count": self.processed_count}


# 一些有问题的全局函数
def BadlyNamedFunction():  # 函数名不符合规范
    """函数名不符合 Python 命名规范"""
    pass


def unused_function(x, y, z):  # 未使用的参数
    """未使用所有参数的函数"""
    return x + y


# 过长的行
def function_with_very_long_line():
    """包含过长行的函数"""
    very_long_string = "这是一个非常非常非常非常非常非常非常非常非常非常长的字符串，超过了88个字符的限制"
    return very_long_string


# 导入顺序问题
